package com.ssy.lingxi.purchase.service;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.purchase.api.dto.request.*;
import com.ssy.lingxi.purchase.api.dto.request.purchase.PurchaseInquiryListRequest;
import com.ssy.lingxi.purchase.api.dto.request.purchase.QuotedPriceInfoRequest;
import com.ssy.lingxi.purchase.api.dto.response.BiddingExternalWorkStateEnumResponse;
import com.ssy.lingxi.purchase.api.dto.response.PriceParityDetailsResponse;
import com.ssy.lingxi.purchase.api.dto.response.purchase.*;

import java.util.List;

/**
 * 确认报价单
 */
public interface ConfirmQuotedPriceService {


    /**
     * 报价查询
     */
    Wrapper<PageData<PurchaseInquiryListResponse>> list(PurchaseInquiryListRequest request, UserLoginCacheDTO sysUser);

    /**
     * 调整报价时间
     */
    Wrapper adjustTime(AdjustTimeRequest request, UserLoginCacheDTO sysUser);


    /**
     * 报价详情
     */
    Wrapper<ConfirmQuotedPriceResponse> details(ConfirmQuotedPriceDetailsRequest request, UserLoginCacheDTO sysUser);


    /**
     *立即比价
     */
    Wrapper<List<PriceParityDetailsResponse>> rightOffContrastPrice(ConfirmQuotedPriceDetailsRequest request,UserLoginCacheDTO sysUser);

    /**
     * 报价单详情
     */
    Wrapper<ConfirmQuotedPriceDetailsResponse> detailed(BaseDetailsRequest request, UserLoginCacheDTO sysUser);


    /**
     * 报价单详情-物料详情列表查询-分页
     */
    Wrapper<PageData<QuotedPriceProductResponse>> materielDetailed(MaterielDetailedRequest request, UserLoginCacheDTO sysUser);


    /**
     * 待比价
     */
    Wrapper<PageData<PurchaseInquiryListResponse>> stayContrastPrice(PurchaseInquiryListRequest request, UserLoginCacheDTO sysUser);



    /**
     *发起下轮报价
     */
    Wrapper launchTurnQuotedPrice(AdjustTimeRequest request,UserLoginCacheDTO sysUser);





    /**
     *解密报价单
     */
    Wrapper decryptQuotedPrice(DecryptQuotedPriceRequest request,UserLoginCacheDTO sysUser);

    /**
     *提交比价
     */
     Wrapper submitContrastPrice(SubmitContrastPriceRequest request,UserLoginCacheDTO sysUser);


    /**
     *待审核授标结果(一级)
     */
    Wrapper<PageData<PurchaseInquiryListResponse>> stayExamineAward1List(PurchaseInquiryListRequest request,UserLoginCacheDTO sysUser);


    /**
     *审核授标结果(一级)
     */
    Wrapper stayExamineAward1(BaseExamineRequest request,UserLoginCacheDTO sysUser);


    /**
     *批量审核授标结果(一级)
     */
    Wrapper stayExamineAwards1(BaseAllRequest request, UserLoginCacheDTO sysUser);


    /**
     *待审核授标结果(二级)
     */
    Wrapper<PageData<PurchaseInquiryListResponse>> stayExamineAward2List(PurchaseInquiryListRequest request,UserLoginCacheDTO sysUser);


    /**
     *审核授标结果(二级)
     */
    Wrapper stayExamineAward2(BaseExamineRequest request,UserLoginCacheDTO sysUser);

    /**
     *批量审核授标结果(二级)
     */
     Wrapper stayExamineAwards2(BaseAllRequest request, UserLoginCacheDTO sysUser);

    /**
     *待确认授标结果
     */
    Wrapper<PageData<PurchaseInquiryListResponse>> stayConfirmAwardResultList(PurchaseInquiryListRequest request,UserLoginCacheDTO sysUser);



    /**
     *确认授标结果
     */
    Wrapper stayConfirmAwardResult(BaseExamineRequest request,UserLoginCacheDTO sysUser);


    /**
     *报价供应商信息
     */
    Wrapper<PageData<QuotedPriceInfoResponse>> quotedPriceInfoList(QuotedPriceInfoRequest request, UserLoginCacheDTO sysUser);


    /**
     * 采购确认报价单工作流内部状态枚举
     */
     Wrapper<List<BiddingExternalWorkStateEnumResponse>> interiorStatus();
}
